cc.Class({
  extends: cc.Component,

  properties: {},

  onLoad() {
    // console.log(cc.director.getCollisionManager().enabled);
    // cc.director.getCollisionManager().enabled = true;
    // cc.director.getCollisionManager().enabledDebugDraw = true;
    // console.log(cc.director.getCollisionManager().enabled);
    // this.gameCtl = new GameCtl();
    // console.log(GameCtl);
  },

  init(gameCtl) {
    this.gameCtl = gameCtl;

    this.node.position = cc.v2(540, 550); //初始化位置
    this.getComponent(cc.RigidBody).linearVelocity = cc.v2(1000, 1000); //初始化速度
  },

  // onCollisionEnter: function(other, self) {
  //   console.log('on collision enter');
  // },

  // /**
  //  * 当碰撞产生后，碰撞结束前的情况下，每次计算碰撞结果后调用
  //  * @param  {Collider} other 产生碰撞的另一个碰撞组件
  //  * @param  {Collider} self  产生碰撞的自身的碰撞组件
  //  */
  // onCollisionStay: function(other, self) {
  //   console.log('on collision stay');
  // },

  onBeginContact(contact, self, other) {
    switch (other.tag) {
      case 1: //球碰到砖块
        this.gameCtl.onBallContactBrick(self.node, other.node);
        break;
      case 2: //球碰到地面
        this.gameCtl.onBallContactGround(self.node, other.node);
        break;
      case 3: //球碰到托盘
        this.gameCtl.onBallContactPaddle(self.node, other.node);
        break;
      case 4: //球碰到墙
        this.gameCtl.onBallContactWall(self.node, other.node);
        break;
    }
  }
});
